package com.sibu.yx.promotion.persistence.mapper;


import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sibu.yx.promotion.persistence.model.sys.SysUser;


/**
 * Created with IntelliJ IDEA.
 * User: qiujingwang
 * Date: 2016/7/21
 * Description:系统用户dao
 */
public interface SysUserMapper extends BaseMapper<SysUser> {

    /**
     * 删除用户信息
     * @param id
     * @return
     */
    int deleteByPrimaryKey(Long id);

    /**
     * 选择性插入用户信息
     * @param record
     * @return
     */
    int insertSelective(SysUser record);

    /**
     * 根据id查询用户信息
     * @param id
     * @return
     */
    SysUser selectByPrimaryKey(Long id);

    /**
     * 选择性更新用户信息
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(SysUser record);

    /**
     * 更新用户信息
     * @param record
     * @return
     */
    int updateByPrimaryKey(SysUser record);

    List<SysUser> selectAll();

    /**
     * 根据条件查询用户信息
     * @param userName 用户名
     * @param organizationId 组织机构
     * @param deleteFlag 删除标识
     * @param locked 是否被锁标识
     * @param page 分页码
     * @return
     */
    List<SysUser> listForPage(@Param("userName") String userName, @Param("phone") String phone, @Param("organizationId") Long organizationId, @Param("deleteFlag") Boolean deleteFlag,
                              @Param("locked") Boolean locked, @Param("page") Page page);

    /**
     * 根据用户名查询用户信息
     * @param userName
     * @return
     */
    SysUser selectByUserName(String userName);

    /**
     * 用户名是否已经存在
     * @param userName
     * @return
     */
    boolean isExistByUserName(@Param("id") Long id, @Param("userName") String userName);

    /**
     * 更新用户角色
     * @param id
     * @param roleIds
     * @return
     */
    int updateRoleIdsByPrimaryKey(@Param("id") Long id, @Param("roleIds") String roleIds);

}